A storage area network (SAN) is a specialised high speed network which is operable for the attachment of servers and storage devices. A SAN allows an ‘any-to-any’ connection across the network, using interconnected elements such as routers, hubs, switches and directors. A SAN eliminates the traditional dedicated connection between a server and a storage device. A SAN also eliminates restrictions to the amount of data that a server can access, currently limited by the number of storage devices, which can be attached to the individual server.
In a storage area network, server and storage resources need to be allocated on demand whenever there is a requirement to create a new IT service. Typically, in such an environment, storage is connected to a physical server. However, in an environment where a server is virtualised to create a number of virtual servers running on the physical server, problems are encountered when ensuring that a virtual server ‘sees’ the same physical storage as the physical server.
In this context, the provisioning of storage to a server means the allocation of new storage on an external disk array, allocation of the storage to the server and preparing the storage for application usage by the configuration of volume managers and the creation of file systems.
State of the art provisioning tools exist to perform automated end-to-end provisioning of storage in a physical server environment. However, in a virtual server environment, existing storage provisioning techniques need enhancement to support one or more virtual servers.
This is because the physical server is not aware of a server virtualization layer which enables the virtualisation of server resources. A virtualisation layer is also known in the art as a hypervisor.
The resources of the physical server hosting the virtual servers comprise processors, network connectivity and storage. The management of the physical server resources and the sharing of the resources between multiple virtual servers are handled by a hypervisor.
However, the hypervisor is limited to assigning resources that it has direct control over. Typically this includes the physical components of the server such as processors, memory, network adapters, serial adapters, DVD drives etc. These are hardware attributes of the physical components of the server system and can typically only be changed by the physical addition of new hardware. However, a hypervisor can only assign storage that it can physically access and is already aware of. For example, a hypervisor can assign disk storage that is directly associated with a physical server via an internal chassis or external storage on an external disk array that has already been assigned to the physical server and made available to the hypervisor. When a user requests the hypervisor to assign storage to a virtual server, it can only use existing storage that is already physically assigned to the physical server and can be accessed via the hypervisor.
Dedication and pre-allocation of storage resources to a physical server to meet a potential requirement that may not materialise is not desirable. This leads to unused and wasted resources that cannot be used by other physical servers and runs counter to the concept of a utility computing environment where resources are only assigned when required. Consequently, in an environment where multiple physical servers exist, each hosting virtual servers, it is desirable to assign storage to a physical server when it is required by a virtual server. State of the art hypervisors do not have this capability to automatically assign additional storage on demand from an external disk array.